package com.ittao.taoaicodemother.manage.storage.callback;

/**
 * 下载进度回调接口
 * 用于监控文件下载进度和状态
 */
public interface DownloadProgressCallback {
    
    /**
     * 下载开始时调用
     * @param totalFiles 总文件数
     * @param totalSize 总文件大小
     */
    void onStart(int totalFiles, long totalSize);

    /**
     * 下载进度更新时调用
     * @param completedFiles 已完成文件数
     * @param downloadedSize 已下载大小
     * @param totalFiles 总文件数
     * @param totalSize 总文件大小
     */
    void onProgress(int completedFiles, long downloadedSize, int totalFiles, long totalSize);

    /**
     * 单个文件下载完成时调用
     * @param fileName 文件名
     * @param fileSize 文件大小
     */
    void onFileCompleted(String fileName, long fileSize);

    /**
     * 单个文件下载出错时调用
     * @param fileName 文件名
     * @param error 错误信息
     */
    void onFileError(String fileName, Exception error);

    /**
     * 所有文件下载完成时调用
     * @param completedFiles 已完成文件数
     * @param downloadedSize 已下载大小
     * @param duration 持续时间
     */
    void onComplete(int completedFiles, long downloadedSize, long duration);

    /**
     * 下载过程中出现错误时调用
     * @param error 错误信息
     */
    void onError(Exception error);
}